home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicProgressBarUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  7.1 KB  |  269 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Insets;
  8. import java.awt.Point;
  9. import java.awt.Rectangle;
  10. import javax.swing.BoundedRangeModel;
  11. import javax.swing.JComponent;
  12. import javax.swing.JProgressBar;
  13. import javax.swing.LookAndFeel;
  14. import javax.swing.UIManager;
  15. import javax.swing.event.ChangeListener;
  16. import javax.swing.plaf.ComponentUI;
  17. import javax.swing.plaf.ProgressBarUI;
  18.  
  19. public class BasicProgressBarUI extends ProgressBarUI {
  20.    private static final Dimension PREFERRED_INNER_HORIZONTAL = new Dimension(146, 12);
  21.    private static final Dimension PREFERRED_INNER_VERTICAL = new Dimension(12, 146);
  22.    private int cachedPercent;
  23.    private int cellLength;
  24.    private int cellSpacing;
  25.    private Color selectionForeground;
  26.    private Color selectionBackground;
  27.    protected JProgressBar progressBar;
  28.    protected ChangeListener changeListener;
  29.  
  30.    // $FF: synthetic method
  31.    static int access$0(BasicProgressBarUI var0) {
  32.       return var0.getCachedPercent();
  33.    }
  34.  
  35.    // $FF: synthetic method
  36.    static void access$1(BasicProgressBarUI var0, int var1) {
  37.       var0.setCachedPercent(var1);
  38.    }
  39.  
  40.    public static ComponentUI createUI(JComponent var0) {
  41.       return new BasicProgressBarUI();
  42.    }
  43.  
  44.    protected int getAmountFull(Insets var1, int var2, int var3) {
  45.       int var4 = 0;
  46.       BoundedRangeModel var5 = this.progressBar.getModel();
  47.       if (var5.getMaximum() - var5.getMinimum() != 0) {
  48.          if (this.progressBar.getOrientation() == 0) {
  49.             var4 = (int)Math.round((double)var2 * this.progressBar.getPercentComplete());
  50.          } else {
  51.             var4 = (int)Math.round((double)var3 * this.progressBar.getPercentComplete());
  52.          }
  53.       }
  54.  
  55.       return var4;
  56.    }
  57.  
  58.    private int getCachedPercent() {
  59.       return this.cachedPercent;
  60.    }
  61.  
  62.    protected int getCellLength() {
  63.       return this.progressBar.isStringPainted() ? 1 : this.cellLength;
  64.    }
  65.  
  66.    protected int getCellSpacing() {
  67.       return this.progressBar.isStringPainted() ? 0 : this.cellSpacing;
  68.    }
  69.  
  70.    public Dimension getMaximumSize(JComponent var1) {
  71.       Dimension var2 = this.getPreferredSize(this.progressBar);
  72.       if (this.progressBar.getOrientation() == 0) {
  73.          var2.width = 32767;
  74.       } else {
  75.          var2.height = 32767;
  76.       }
  77.  
  78.       return var2;
  79.    }
  80.  
  81.    public Dimension getMinimumSize(JComponent var1) {
  82.       Dimension var2 = this.getPreferredSize(this.progressBar);
  83.       if (this.progressBar.getOrientation() == 0) {
  84.          var2.width = 10;
  85.       } else {
  86.          var2.height = 10;
  87.       }
  88.  
  89.       return var2;
  90.    }
  91.  
  92.    protected Dimension getPreferredInnerHorizontal() {
  93.       return PREFERRED_INNER_HORIZONTAL;
  94.    }
  95.  
  96.    protected Dimension getPreferredInnerVertical() {
  97.       return PREFERRED_INNER_VERTICAL;
  98.    }
  99.  
  100.    public Dimension getPreferredSize(JComponent var1) {
  101.       Insets var3 = this.progressBar.getInsets();
  102.       FontMetrics var4 = this.progressBar.getFontMetrics(this.progressBar.getFont());
  103.       Dimension var2;
  104.       if (this.progressBar.getOrientation() == 0) {
  105.          var2 = new Dimension(this.getPreferredInnerHorizontal());
  106.          if (this.progressBar.isStringPainted()) {
  107.             String var5 = this.progressBar.getString();
  108.             int var6 = var4.stringWidth(var5);
  109.             if (var6 > var2.width) {
  110.                var2.width = var6;
  111.             }
  112.  
  113.             int var7 = var4.getHeight() + var4.getDescent();
  114.             if (var7 > var2.height) {
  115.                var2.height = var7;
  116.             }
  117.          }
  118.       } else {
  119.          var2 = new Dimension(this.getPreferredInnerVertical());
  120.          if (this.progressBar.isStringPainted()) {
  121.             String var8 = new String("100%");
  122.             int var10 = var4.stringWidth(var8);
  123.             if (var10 > var2.width) {
  124.                var2.width = var10;
  125.             }
  126.  
  127.             var8 = this.progressBar.getString();
  128.             var10 = var4.stringWidth(var8);
  129.             if (var10 > var2.width) {
  130.                var2.width = var10;
  131.             }
  132.  
  133.             int var12 = var4.getHeight() + var4.getDescent();
  134.             if (var12 > var2.height) {
  135.                var2.height = var12;
  136.             }
  137.          }
  138.       }
  139.  
  140.       var2.width += var3.left + var3.right;
  141.       var2.height += var3.top + var3.bottom;
  142.       return var2;
  143.    }
  144.  
  145.    protected Color getSelectionBackground() {
  146.       return this.selectionBackground;
  147.    }
  148.  
  149.    protected Color getSelectionForeground() {
  150.       return this.selectionForeground;
  151.    }
  152.  
  153.    protected Point getStringPlacement(Graphics var1, String var2, int var3, int var4, int var5, int var6) {
  154.       FontMetrics var7 = this.progressBar.getFontMetrics(this.progressBar.getFont());
  155.       int var8 = var7.stringWidth(var2);
  156.       int var9 = var7.getAscent() + var7.getDescent();
  157.       return this.progressBar.getOrientation() == 0 ? new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + var7.getHeight() - Math.round((float)(var7.getDescent() / 2))) : new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + Math.round((float)(var6 / 2 + var9 / 2)));
  158.    }
  159.  
  160.    protected void installDefaults() {
  161.       this.progressBar.setOpaque(true);
  162.       LookAndFeel.installBorder(this.progressBar, "ProgressBar.border");
  163.       LookAndFeel.installColorsAndFont(this.progressBar, "ProgressBar.background", "ProgressBar.foreground", "ProgressBar.font");
  164.       this.cellLength = UIManager.getInt("ProgressBar.cellLength");
  165.       this.cellSpacing = UIManager.getInt("ProgressBar.cellSpacing");
  166.       this.selectionForeground = UIManager.getColor("ProgressBar.selectionForeground");
  167.       this.selectionBackground = UIManager.getColor("ProgressBar.selectionBackground");
  168.    }
  169.  
  170.    protected void installListeners() {
  171.       this.changeListener = new ChangeHandler(this);
  172.       this.progressBar.addChangeListener(this.changeListener);
  173.    }
  174.  
  175.    public void installUI(JComponent var1) {
  176.       this.progressBar = (JProgressBar)var1;
  177.       this.installDefaults();
  178.       this.installListeners();
  179.    }
  180.  
  181.    public void paint(Graphics var1, JComponent var2) {
  182.       BoundedRangeModel var3 = this.progressBar.getModel();
  183.       int var4 = 0;
  184.       int var5 = 0;
  185.       int var6 = this.progressBar.getWidth();
  186.       int var7 = this.progressBar.getHeight();
  187.       Insets var8 = this.progressBar.getInsets();
  188.       var4 += var8.left;
  189.       var5 += var8.top;
  190.       var6 -= var8.right + var4;
  191.       var7 -= var8.bottom + var5;
  192.       int var10 = this.getCellLength() + this.getCellSpacing();
  193.       int var11 = this.getAmountFull(var8, var6, var7);
  194.       var1.setColor(this.progressBar.getForeground());
  195.       if (this.progressBar.getOrientation() == 0) {
  196.          if (this.getCellSpacing() == 0 && var11 > 0) {
  197.             var1.fillRect(var4, var5, var4 - var8.left + var11, var7);
  198.          } else {
  199.             int var12 = var4 + var11;
  200.  
  201.             for(int var9 = var4; var9 < var12; var9 += var10) {
  202.                var1.fillRect(var9, var5, this.getCellLength(), var7);
  203.             }
  204.          }
  205.       } else if (this.getCellSpacing() == 0 && var11 > 0) {
  206.          var1.fillRect(var4, var7 - var11 + var8.top, var6, var11);
  207.       } else {
  208.          int var18 = var7 - var11;
  209.  
  210.          for(int var17 = var7 - this.getCellLength() + this.getCellSpacing(); var17 >= var18; var17 -= var10) {
  211.             var1.fillRect(var4, var17, var6, this.getCellLength());
  212.          }
  213.       }
  214.  
  215.       if (this.progressBar.isStringPainted()) {
  216.          this.paintString(var1, var4, var5, var6, var7, var11, var8);
  217.       }
  218.  
  219.    }
  220.  
  221.    protected void paintString(Graphics var1, int var2, int var3, int var4, int var5, int var6, Insets var7) {
  222.       String var8 = this.progressBar.getString();
  223.       var1.setFont(this.progressBar.getFont());
  224.       Point var9 = this.getStringPlacement(var1, var8, var2, var3, var4, var5);
  225.       Rectangle var10 = var1.getClipBounds();
  226.       if (this.progressBar.getOrientation() == 0) {
  227.          var1.setColor(this.getSelectionForeground());
  228.          var1.drawString(var8, var9.x, var9.y);
  229.          var1.setColor(this.getSelectionBackground());
  230.          var1.setClip(var6 + var7.left, var3, var4, var5);
  231.          var1.drawString(var8, var9.x, var9.y);
  232.       } else {
  233.          var1.setColor(this.getSelectionBackground());
  234.          var1.drawString(var8, var9.x, var9.y);
  235.          var1.setColor(this.getSelectionForeground());
  236.          var1.setClip(var2, var5 - var6 + var7.top, var4, var5);
  237.          var1.drawString(var8, var9.x, var9.y);
  238.       }
  239.  
  240.       var1.setClip(var10.x, var10.y, var10.width, var10.height);
  241.    }
  242.  
  243.    private void setCachedPercent(int var1) {
  244.       this.cachedPercent = var1;
  245.    }
  246.  
  247.    protected void setCellLength(int var1) {
  248.       this.cellLength = var1;
  249.    }
  250.  
  251.    protected void setCellSpacing(int var1) {
  252.       this.cellSpacing = var1;
  253.    }
  254.  
  255.    protected void uninstallDefaults() {
  256.       LookAndFeel.uninstallBorder(this.progressBar);
  257.    }
  258.  
  259.    protected void uninstallListeners() {
  260.       this.progressBar.removeChangeListener(this.changeListener);
  261.    }
  262.  
  263.    public void uninstallUI(JComponent var1) {
  264.       this.uninstallDefaults();
  265.       this.uninstallListeners();
  266.       this.progressBar = null;
  267.    }
  268. }
  269.